package com.atguigu.ssyx.exception;

import com.atguigu.ssyx.result.ResultCodeEnum;
import lombok.Data;

/**
 * @Description: 自定义异常
 * 自定义异常步骤:
 *      1.创建一个类 继承RuntimeException
 *      2.在异常类里面定义属性,生成构造方法
 *      3.在全局异常处理类里面指定自定义异常的处理方法
 *      4.手动抛出该异常: throw new SsyxException();
 * @Author: Ian
 * @Date: 2023/9/24 21:11
 */
@Data
public class SsyxException extends RuntimeException {

    // 状态码
    private Integer code;

    /**
     * 通过错误信息和状态码创建对象
     * @param message
     * @param code
     */
    public SsyxException(String message,Integer code){
        super(message);
        this.code = code;
    }

    /**
     * 通过枚举类来创建对象
     * @param resultCodeEnum
     */
    public SsyxException(ResultCodeEnum resultCodeEnum){
        super(resultCodeEnum.getMessage());
        this.code = resultCodeEnum.getCode();
    }
    @Override
    public String toString() {
        return "GuliException{" +
                "code=" + code +
                ", message=" + this.getMessage() +
                '}';
    }
}
